<?php
/**
 * 
 *
 * @param mixed $obj
 */
function dumper($obj)
{
	echo "<pre>" . dumper_get($obj, $leftSp = ' ') . "</pre>";
}

/**
 * @see dumper
 *
 * @param mixed $obj, string $leftSp
 */
function dumper_get($obj, $leftSp)
{
	// > 
	if (is_array($obj))
	{
		$type = "Array (" . sizeof($obj) . ")";
	}
	else if (is_object($obj))
	{
		$type = "Object";
	}
	else if ("boolen" == gettype($obj))
	{
		return $obj ? "true" : "false";
	}
	else
	{
		return "\"$obj\"";
	}
	// <

	$buf = $type;
	$leftSp .= $leftSp;
	for (reset($obj); list($k, $v) = each($obj);)
	{
		if ("GLOBALS" === $k) continue;
		$buf .= "\n$leftSp [$k] => " . dumper_get($v, $leftSp);
	}
	return $buf;
}

/**
 * 
 *
 * @param mixed $value
 */
function get_value($value)
{
	if (get_magic_quotes_gpc()) {
	   $value = stripslashes_deep($value);
	} else {
	   $value = urldecode_deep($value); 
	}
	return $value;
}

/**
 * @see get_value
 *
 * @param mixed $value
 */
function stripslashes_deep($value)
{
   return (is_array($value) ? array_map('stripslashes_deep', $value) : stripslashes(trim(urldecode($value))));
}

/**
 * @see get_value
 *
 * @param mixed $value
 */
function urldecode_deep($value)
{
   return (is_array($value) ? array_map('urldecode_deep', $value) : urldecode(trim($value)));
}

/***********************************************************************************
Функция img_resize(): генерация thumbnails
Параметры:
  $src             - имя исходного файла
  $dest            - имя генерируемого файла
  $width, $height  - ширина и высота генерируемого изображения, в пикселях
Необязательные параметры:
  $rgb             - цвет фона, по умолчанию - белый
  $quality         - качество генерируемого JPEG, по умолчанию - максимальное (100)
***********************************************************************************/
function img_resize($src, $dest, $width, $height, $rgb=0xFFFFFF, $quality=100)
{
  if (!file_exists($src)) return false;

  $size = getimagesize($src);

  if ($size === false) return false;

  // Определяем исходный формат по MIME-информации, предоставленной
  // функцией getimagesize, и выбираем соответствующую формату
  // imagecreatefrom-функцию.
  $format = strtolower(substr($size['mime'], strpos($size['mime'], '/')+1));
  $icfunc = "imagecreatefrom" . $format;
  if (!function_exists($icfunc)) return false;

  $x_ratio = $width / $size[0];
  $y_ratio = $height / $size[1];

  $ratio       = min($x_ratio, $y_ratio);
  $use_x_ratio = ($x_ratio == $ratio);

  $new_width   = $use_x_ratio  ? $width  : floor($size[0] * $ratio);
  $new_height  = !$use_x_ratio ? $height : floor($size[1] * $ratio);
  $new_left    = $use_x_ratio  ? 0 : floor(($width - $new_width) / 2);
  $new_top     = !$use_x_ratio ? 0 : floor(($height - $new_height) / 2);

  $isrc = $icfunc($src);
  $idest = imagecreatetruecolor($width, $height);

  imagefill($idest, 0, 0, $rgb);
  imagecopyresampled($idest, $isrc, $new_left, $new_top, 0, 0, 
    $new_width, $new_height, $size[0], $size[1]);

  imagejpeg($idest, $dest, $quality);

  imagedestroy($isrc);
  imagedestroy($idest);

  return true;

}

function paging($page = 0, $sum = 10, $count_rows)
{
        $count_pages = ceil($count_rows/$sum);

        if ($count_rows <= $sum) return false;
        
        // > пейджинг
        $start_page = $page - 10;
        if ($start_page < 0) {
            $start_page = 0;
        }
        $end_page = $page + 10;
        if ($end_page > $count_pages) {
            $end_page = $count_pages;
        }
        for ($i=$start_page; $i<$end_page; $i++) {
            $pages[$i] = $i+1;
        }
        
        return $pages;
}